// import { pageHomeChengeFun } from './pageHomeChengeFun.js'

// const {pageHomeChengeFun} = require('./pageHomeChengeFun.js')

// const testInfoData = {
//   "pay_amt": {
//       "pay_amt_index_value": {
//           "cell_type": 2,
//           "index_values": {
//               "last_value": {
//                   "unit": 3,
//                   "value": 0
//               },
//               "out_period_ratio": {
//                   "unit": 4,
//                   "value": -0.8553981946786003
//               },
//               "value": {
//                   "unit": 3,
//                   "value": 1308938
//               }
//           }
//       },
//       "pay_amt_index_values": {
//           "cell_type": 2,
//           "index_values": {
//               "last_value": {
//                   "unit": 3,
//                   "value": 0
//               },
//               "out_period_ratio": {
//                   "unit": 4,
//                   "value": -0.8553981946786003
//               },
//               "value": {
//                   "unit": 3,
//                   "value": 1308938
//               }
//           }
//       }
//   },
//   "pay_order_cnt": {
//       "pay_order_cnt_index_value": {
//           "cell_type": 2,
//           "index_values": {
//               "last_value": {
//                   "unit": 5,
//                   "value": 269
//               },
//               "out_period_ratio": {
//                   "unit": 4,
//                   "value": -0.9182156133828996
//               },
//               "value": {
//                   "unit": 5,
//                   "value": 22
//               }
//           }
//       },
//       "pay_order_cnt_index_values": {
//           "cell_type": 2,
//           "index_values": {
//               "last_value": {
//                   "unit": 5,
//                   "value": 269
//               },
//               "out_period_ratio": {
//                   "unit": 4,
//                   "value": 0.9182156133828996
//               },
//               "value": {
//                   "unit": 5,
//                   "value": 22
//               }
//           }
//       }
//   },
//   "pay_ucnt": {
//       "pay_ucnt_index_value": {
//           "cell_type": 2,
//           "index_values": {
//               "last_value": {
//                   "unit": 5,
//                   "value": 249
//               },
//               "out_period_ratio": {
//                   "unit": 4,
//                   "value": -0.9116465863453815
//               },
//               "value": {
//                   "unit": 5,
//                   "value": 22
//               }
//           }
//       },
//       "pay_ucnt_index_values": {
//           "cell_type": 2,
//           "index_values": {
//               "last_value": {
//                   "unit": 5,
//                   "value": 249
//               },
//               "out_period_ratio": {
//                   "unit": 4,
//                   "value": -0.9116465863453815
//               },
//               "value": {
//                   "unit": 5,
//                   "value": 22
//               }
//           }
//       }
//   },
//   "product_click_pay_rate": {
//       "product_click_pay_rate_index_value": {
//           "cell_type": 2,
//           "index_values": {
//               "last_value": {
//                   "unit": 4,
//                   "value": 0.189972
//               },
//               "out_period_ratio": {
//                   "unit": 4,
//                   "value": 0.20631812407442493
//               },
//               "value": {
//                   "unit": 4,
//                   "value": 0.22916666666666666
//               }
//           }
//       },
//       "product_click_pay_rate_index_values": {
//           "cell_type": 2,
//           "index_values": {
//               "last_value": {
//                   "unit": 4,
//                   "value": 0.189972
//               },
//               "out_period_ratio": {
//                   "unit": 4,
//                   "value": 0.20631812407442493
//               },
//               "value": {
//                   "unit": 4,
//                   "value": 0.22916666666666666
//               }
//           }
//       }
//   },
//   "product_refund_amt": {
//       "product_refund_amt_index_value": {
//           "cell_type": 2,
//           "index_values": {
//               "last_value": {
//                   "unit": 3,
//                   "value": 72374
//               },
//               "out_period_ratio": {
//                   "unit": 4,
//                   "value": -0.6653632519965733
//               },
//               "value": {
//                   "unit": 3,
//                   "value": 24219
//               }
//           }
//       },
//       "product_refund_amt_index_values": {
//           "cell_type": 2,
//           "index_values": {
//               "last_value": {
//                   "unit": 3,
//                   "value": 72374
//               },
//               "out_period_ratio": {
//                   "unit": 4,
//                   "value": -0.6653632519965733
//               },
//               "value": {
//                   "unit": 3,
//                   "value": 24219
//               }
//           }
//       }
//   },
//   "product_show_ucnt": {
//       "product_show_ucnt_index_value": {
//           "cell_type": 2,
//           "index_values": {
//               "last_value": {
//                   "unit": 5,
//                   "value": 18545
//               },
//               "out_period_ratio": {
//                   "unit": 4,
//                   "value": -0.9362631437045026
//               },
//               "value": {
//                   "unit": 5,
//                   "value": 1182
//               }
//           }
//       },
//       "product_show_ucnt_index_values": {
//           "cell_type": 2,
//           "index_values": {
//               "last_value": {
//                   "unit": 5,
//                   "value": 18545
//               },
//               "out_period_ratio": {
//                   "unit": 4,
//                   "value": -0.9362631437045026
//               },
//               "value": {
//                   "unit": 5,
//                   "value": 1182
//               }
//           }
//       }
//   }
// }
let topInterData =  null
let initJinyingData = null
let initTiyangfenData = null
let initDslpData = null

const upDataInfoList = [
  {
    "url": "pc/api/home/homepage",
    func: (jsons) => {
      jsons.data.lay_out_data.forEach(item => {
        // console.log('item123456', item)
        item.cards.forEach(tables => {
          // console.log('tables969663', tables)
          /**
           * icon_type 18 下 0 平 17 上
           */
          if (tables.card_name === "operating_data_card") { // 待办
            tables.data.operating_data_card_data.compass_list.forEach(oper_data => {
              if(initJinyingData) {
                initJinyingData.forEach(item => {
                  if(item.key === oper_data.key) {
                    oper_data.val = item.val_status ? item.val_show_tab : oper_data.val
                    oper_data.sub_val = item.sub_val_status ? item.sub_val_show : oper_data.sub_val
                    oper_data.icon_type = item.icon_type_status ? item.icon_type : oper_data.icon_type
                  }
                })
              }
            })
          }
          if (tables.card_name === "doudian_lite_operating_data_card") { // 生意数据
            tables.data.doudian_lite_operating_data_card_data.compass_list.forEach(oper_data => {
              if(initJinyingData) {
                initJinyingData.forEach(item => {
                  if(item.key === oper_data.key) {
                    oper_data.val = item.val_status ? item.val_show_tab : oper_data.val
                    oper_data.sub_val = item.sub_val_status ? item.sub_val_show : oper_data.sub_val
                    oper_data.icon_type = item.icon_type_status ? item.icon_type : oper_data.icon_type
                  }
                })
              }
            })
            // 商品的小列表
            // tables.data.doudian_lite_operating_data_card_data.top_product_list_card.top_product_item_list.forEach(oper_data => {
            //   oper_data.data_items.forEach(itemser => {
            //     itemser.value = '￥6358.23'
            //   })
            // })
          }
          if (tables.card_name === "rule_and_business_data_card") { // 生意数据
            let refoliters = tables.data.rule_and_business_data_card_data.business_data.agv_bussiness_list || tables.data.rule_and_business_data_card_data.business_data.bussiness_list
            refoliters.forEach(busItem => {
              let { title } = busItem
              if(topInterData) {
                topInterData.forEach(topItem => {
                  topItem.listIds.forEach(topInter => {
                    if(title == '待售后' && topInter.title === '待处理售后') {
                      busItem.val = topInter.val
                    }
                    if(title == '服务工单' && topInter.title === '待处理服务单') {
                      busItem.val = topInter.val
                    }
                    if (topInter.title === title && topInter.status) {
                      busItem.val = topInter.val
                    }
                  })
                })
              }
            })
          }
          if (tables.card_name === "shop_info_card") { // 体验分
            // console.log(tables.data.shop_info_card_data)
            if(initTiyangfenData.show_chear) {

            tables.data.shop_info_card_data.expr_score.has_data = true
            // tables.data.shop_info_card_data.expr_score.compass_list = [
            //   {
            //     "key": "",
            //     "title": "商品",
            //     "val": "100",
            //     "action": {
            //       "type": 1,
            //       "jump_target": {
            //         "type": 2,
            //         "schema": "https://fxg.jinritemai.com/ffa/eco/experience-score?source=fxg-home",
            //         "content": "",
            //         "request_target": null,
            //         "pc_link": null,
            //         "type_name": "link"
            //       },
            //       "type_name": "jump"
            //     },
            //     "sub_title": "较前1天",
            //     "sub_val": "0",
            //     "icon_type": 0,
            //     "button": null,
            //     "remark": "",
            //     "desc": "",
            //     "word": {
            //       "word": "高",
            //       "word_color": "#00C87F",
            //       "word_bkg": "219,255,239,1"
            //     },
            //     "sub_icon_type": 0
            //   },
            //   {
            //     "key": "",
            //     "title": "物流",
            //     "val": "78",
            //     "action": {
            //       "type": 1,
            //       "jump_target": {
            //         "type": 2,
            //         "schema": "https://fxg.jinritemai.com/ffa/eco/experience-score?source=fxg-home",
            //         "content": "",
            //         "request_target": null,
            //         "pc_link": null,
            //         "type_name": "link"
            //       },
            //       "type_name": "jump"
            //     },
            //     "sub_title": "较前1天",
            //     "sub_val": "0",
            //     "icon_type": 0,
            //     "button": null,
            //     "remark": "",
            //     "desc": "",
            //     "word": {
            //       "word": "中",
            //       "word_color": "#1966FF",
            //       "word_bkg": "229,240,255,1"
            //     },
            //     "sub_icon_type": 0
            //   },
            //   {
            //     "key": "",
            //     "title": "服务",
            //     "val": "90",
            //     "action": {
            //       "type": 1,
            //       "jump_target": {
            //         "type": 2,
            //         "schema": "https://fxg.jinritemai.com/ffa/eco/experience-score?source=fxg-home",
            //         "content": "",
            //         "request_target": null,
            //         "pc_link": null,
            //         "type_name": "link"
            //       },
            //       "type_name": "jump"
            //     },
            //     "sub_title": "较前1天",
            //     "sub_val": "0",
            //     "icon_type": 0,
            //     "button": null,
            //     "remark": "",
            //     "desc": "",
            //     "word": {
            //       "word": "高",
            //       "word_color": "#00C87F",
            //       "word_bkg": "219,255,239,1"
            //     },
            //     "sub_icon_type": 0
            //   }
            // ]
            // console.log('tables.data.shop_info_card_data.expr_score.compass_list', tables.data.shop_info_card_data.expr_score.compass_list)
            if(initTiyangfenData && initTiyangfenData.expr_score.compass_list) {
              initTiyangfenData.expr_score.compass_list.forEach((item, index) => {
                // const getFintdas = initTiyangfenData.expr_score.compass_list.find((items) => items.title === item.title)
                if(item && item.status) {
                 if(tables.data.shop_info_card_data.expr_score.compass_list && tables.data.shop_info_card_data.expr_score.compass_list.length) {
                  tables.data.shop_info_card_data.expr_score.compass_list[index] = item
                 } else {
                  tables.data.shop_info_card_data.expr_score.compass_list = [item]
                 }
                }
              })
            }
            tables.data.shop_info_card_data.expr_score.hover = null
            tables.data.shop_info_card_data.expr_score.shop_status_info = null
            if(initTiyangfenData && initTiyangfenData.expr_score.main_compass) {
              console.log('体验分', initTiyangfenData.expr_score.main_compass)
              if(initTiyangfenData.expr_score.main_compass.show_val || initTiyangfenData.expr_score.main_compass.show_sub_val ||initTiyangfenData.expr_score.main_compass.show_icon_typs) {
                tables.data.shop_info_card_data.expr_score.main_compass = initTiyangfenData.expr_score.main_compass
              }
            }
            
            if(initTiyangfenData && initTiyangfenData.shop_data_info.shop_data_item_list) {
              if(!tables.data.shop_info_card_data.shop_data_info) {
                tables.data.shop_info_card_data.shop_data_info = {
                  shop_data_item_list: []
                }
              }
              initTiyangfenData.shop_data_info.shop_data_item_list.forEach((item, index) => {
                if(item && item.status) {
                 
                  if(tables.data.shop_info_card_data.shop_data_info && tables.data.shop_info_card_data.shop_data_info.shop_data_item_list && tables.data.shop_info_card_data.shop_data_info.shop_data_item_list.length) {
                    tables.data.shop_info_card_data.shop_data_info.shop_data_item_list[index] = item
                  } else {
                    tables.data.shop_info_card_data.shop_data_info.shop_data_item_list = [item]
                  }
                  }
                })
            }
          }                
          }
        })
      })
      return jsons
    }
  },
  {
    url: 'compass_api/shop/common/homepage/core/prof_data',
    func: (jsons, _url) => {
      const url = new URL(_url);

      const searchParams =  new URLSearchParams(url.search);
      // const searchParams = new URLSearchParams(_url)
      const date_type = searchParams.get('date_type') 
      // if(date_type === '1') {
      //   console.log('实时 获取首页的数据')
      // }
      // switch (date_type) {
      //   case '1':
      //     console.log('实时 获取首页的数据')
          console.log('待修改的接口',jsons)
      //     return getDianshangluopanData(jsons, date_type)
      //     break;
      //   case '20':
      //     console.log('近一天')
      //     console.log('待修改的接口',jsons)
      //     break;
      //   case '21':
      //     console.log('7天')
      //     break;
      //   case '23':
      //     console.log('30天')
      //     break;
      //   case '100':
      //     console.log('大促')
      //     break;
      //   default:
      //     console.log('其他', date_type)
      //     break;
      // }
    
      return getDianshangluopanData(jsons, date_type)
    }
  }
]

// 电商罗盘数据
function getDianshangluopanData(data, date_type) {
  console.log('data', initDslpData)
  let testInfoData = initDslpData[date_type+'']

  if(data && data.data.length) {
    data.data.forEach(item => {
      // console.log('item.cell_info', item.cell_info)
      if(item && item.cell_info) {
        Object.keys(item.cell_info).forEach(key => {
          // console.log('key', key, item.cell_info[key])
          if(item.cell_info[key]) {
            Object.keys(item.cell_info[key]).forEach(key2 => {
              console.log('key2', key2, item.cell_info[key][key2])
              if(testInfoData[key] && testInfoData[key][key2]) {
                item.cell_info[key][key2] = testInfoData[key][key2]
              }
            })
          }
          // if(item.cell_info[key] && item.cell_info[key].value) {
            
          // }
          // if(item.cell_info[key] && item.cell_info[key].value) {
          //   item.cell_info[key].value = item.cell_info[key].value.replace(/,/g, '')
          // }
        })
      }
    })
  }
  return data

}



// 获取修改的缓存数据
function initData() {
  function getContentDataFun(event) {
    // console.log('event0012345647897456132', event.data)
    if(event.data.type === 'setXhrData') {
      // console.log('需要设置的数据', event.data.data)
      topInterData = event.data.data.initTopData
      initJinyingData = event.data.data.initJinyingData
      initTiyangfenData = event.data.data.initTiyangfenData
      initDslpData = event.data.data.initDslpData
    }
  }
  window.removeEventListener('message', getContentDataFun)
  window.addEventListener('message', getContentDataFun)

}
initData()

function pageHomeChengeFun(xhr) {
 
  const { _url = '' } = xhr
  var res = xhr.responseText;
  upDataInfoList.forEach(item => {
    if (_url.includes(item.url)) {
      try {
        const jsons = JSON.parse(xhr.responseText);
        if (!jsons.code) {
          console.log('xhr', xhr)
          res = JSON.stringify(item.func(jsons, _url))
        }
      } catch (error) {
        console.error('diejrhj--*-+', error)
      }
    }
  })
  return res
}

function setupHook(xhr) {
  function getter() {
    // const { _url = '' } = xhr
    delete xhr.responseText;  // 不delete将造成递归
    // var res = xhr.responseText;
    let setData = pageHomeChengeFun(xhr)
    setup();
    return setData;
  }
  function setter(str) {
  }
  function setup() {
    Object.defineProperty(xhr, 'responseText', {
      get: getter,
      set: setter,
      configurable: true
    });
  }
  setup();
}

var oldOpen = XMLHttpRequest.prototype.open;
XMLHttpRequest.prototype.open = function (method, url, async, user, password) {
  if (!this._hooked) {
    this._hooked = true;
    setupHook(this);
  }
  oldOpen.apply(this, arguments);
}